/**
 * SD-LoRA校园图片生成系统 - 历史记录管理
 */

// DOM元素
const historyItemsList = document.getElementById('historyItems');
const newChatButton = document.getElementById('newChat');

// 初始化
document.addEventListener('DOMContentLoaded', () => {
    // 加载历史记录
    loadHistoryList();
    
    // 新对话按钮点击事件
    newChatButton.addEventListener('click', startNewChat);
});

/**
 * 加载历史记录列表
 */
function loadHistoryList() {
    fetch('/api/history')
        .then(response => response.json())
        .then(data => {
            if (data.sessions && data.sessions.length > 0) {
                // 清空历史列表
                historyItemsList.innerHTML = '';
                
                // 添加历史项
                data.sessions.forEach(session => {
                    addHistoryItem(session);
                });
                
                // 高亮当前会话
                const currentSessionId = window.chatModule?.getCurrentSessionId();
                if (currentSessionId) {
                    const currentItem = historyItemsList.querySelector(`[data-session-id="${currentSessionId}"]`);
                    if (currentItem) {
                        currentItem.classList.add('active');
                    }
                }
            }
        })
        .catch(error => {
            console.error('Error loading history:', error);
        });
}

/**
 * 添加历史记录项
 * @param {Object} session - 会话信息
 */
function addHistoryItem(session) {
    const listItem = document.createElement('li');
    listItem.className = 'history-item';
    listItem.dataset.sessionId = session.id;
    
    // 截断过长的预览文本
    let previewText = session.preview || '新对话';
    if (previewText.length > 25) {
        previewText = previewText.substring(0, 25) + '...';
    }
    
    // 创建历史项内容
    const textSpan = document.createElement('span');
    textSpan.className = 'history-text';
    textSpan.textContent = previewText;
    
    // 如果是绘画模式，添加图标标记
    if (session.mode === 'draw') {
        const drawIcon = document.createElement('span');
        drawIcon.className = 'mode-icon draw-icon';
        drawIcon.innerHTML = '🖼️';
        drawIcon.title = '智慧绘画';
        textSpan.prepend(drawIcon);
    }
    
    const deleteButton = document.createElement('button');
    deleteButton.className = 'delete-btn';
    deleteButton.innerHTML = '&times;';
    deleteButton.title = '删除此会话';
    
    listItem.appendChild(textSpan);
    listItem.appendChild(deleteButton);
    
    // 添加点击事件 - 加载会话
    listItem.addEventListener('click', (e) => {
        // 忽略删除按钮的点击
        if (e.target !== deleteButton) {
            // 根据会话模式决定跳转到哪个页面
            const targetPath = session.mode === 'draw' ? '/draw' : '/chat';
            window.location.href = `${targetPath}?session_id=${session.id}`;
        }
    });
    
    // 添加删除按钮事件
    deleteButton.addEventListener('click', (e) => {
        e.stopPropagation(); // 阻止冒泡，避免触发列表项的点击事件
        deleteSession(session.id);
    });
    
    // 将项目添加到列表
    historyItemsList.prepend(listItem); // 最新的会话放在最前面
}

/**
 * 删除会话
 * @param {string} sessionId - 会话ID
 */
function deleteSession(sessionId) {
    if (confirm('确定要删除此会话吗？这将永久删除该对话历史。')) {
        fetch(`/api/history/${sessionId}`, {
            method: 'DELETE'
        })
        .then(response => {
            if (response.ok) {
                // 从DOM中移除该项
                const item = historyItemsList.querySelector(`[data-session-id="${sessionId}"]`);
                if (item) {
                    item.remove();
                }
                
                // 如果删除的是当前会话，跳转到首页
                const currentSessionId = window.chatModule?.getCurrentSessionId();
                if (currentSessionId === sessionId) {
                    window.location.href = '/';
                }
            } else {
                alert('删除会话失败，请稍后再试');
            }
        })
        .catch(error => {
            console.error('Error deleting session:', error);
            alert('删除会话时发生错误');
        });
    }
}

/**
 * 开始新对话
 */
function startNewChat() {
    // 检查当前页面是否为绘画页面
    const isDrawPage = window.location.pathname.includes('/draw');
    
    // 根据当前页面类型决定跳转到哪个页面
    const targetPath = isDrawPage ? '/draw' : '/chat';
    
    // 保存当前会话（如果有）
    const currentSessionId = window.chatModule?.getCurrentSessionId();
    if (currentSessionId) {
        // 重定向到新的页面（根据当前页面类型）
        window.location.href = targetPath;
    } else {
        // 如果当前已经是新会话，则只清空聊天区域
        const chatArea = document.getElementById('chatArea');
        if (chatArea) {
            chatArea.innerHTML = '';
            // 显示欢迎消息
            window.chatModule?.displayAIMessage('欢迎使用校园图片生成系统！输入描述来生成您想要的校园场景图片，例如"请生成4张图书馆内景的图片"');
        }
    }
} 